
def valideaza(cif):
    # verifica argumentul
    if type(cif) == unicode:
        if cif.isdecimal() != True:
            return [False, 'CIF-ul trebuie sa fie format doar din cifre!']
    elif type(cif) == str:
        if cif.isdigit() != True:
            return [False, 'CIF-ul trebuie sa fie format doar din cifre!']
    elif type(cif) == int:
        cif = str(cif)
    else:
        return [False, 'Parametrul cif trebuie sa fie un numar intreg sau un sir de caractere!']

    # verifica lungimea
    if len(str(cif)) > 10:
        return [False, 'CIF-ul trebuie sa aiba mai maxim 10 cifre!']

    # cheia de validare
    cheia = '753217532'

    # extrage cifra control
    cifra_control = int(cif[-1:])
    cif = cif[:-1]

    # adauga 0 in prefix pana la 9 caractere
    while len(cif) < 9:
        cif = '0' + cif

    suma = 0
    for i in range(len(cheia)):
        suma += int(cif[i]) * int(cheia[i])

    rest = (suma * 10) % 11
    if rest == 10:
        rest = 0

    return [rest == cifra_control]
